package com.sky.controller;

import com.sky.domain.PmsAttrAttrgroupRelation;
import com.sky.service.PmsAttrAttrgroupRelationService;
import com.sky.utils.R;
import com.sky.vo.param.PmsAttrAttrGroupRelationVO;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/pmsAttrAttrGroupRelation")
/**
 * 商品属性与属性组关联控制器
 * 该控制器负责处理与商品属性和属性组关联相关的HTTP请求。
 */
public class PmsAttrAttrGroupRelationController {

    @Resource
    private PmsAttrAttrgroupRelationService pmsAttrAttrgroupRelationService;

    /**
     * 根据属性组ID查询属性关联列表
     * @param groupId 属性组ID
     * @return 返回查询结果，包含关联列表
     * 该方法用于处理GET请求，通过属性组ID获取属性和属性组的关联列表。
     */
    @GetMapping("/listByGroupId")
    public R listByGroupId(@PathVariable("groupId") Long groupId){
        List<PmsAttrAttrgroupRelation> list = pmsAttrAttrgroupRelationService.listByGroupId(groupId);
        return R.ok(list);
    }

    /**
     * 删除属性与属性组的关联关系
     * @param voList 属性与属性组关联的VO列表
     * @return 返回操作结果，成功则返回OK，失败则返回错误信息
     * 该方法用于处理POST请求，批量删除属性和属性组的关联关系。
     */
    @PostMapping("/deleteGroupRelation")
    public R deleteGroupRelation(@RequestBody List<PmsAttrAttrGroupRelationVO> voList){
        boolean delete = pmsAttrAttrgroupRelationService.deleteGroupRelation(voList);
        return delete ? R.ok() : R.error();
    }

    /**
     * 添加属性与属性组的关联关系
     * @param voList 属性与属性组关联的VO列表
     * @return 返回操作结果，成功则返回OK，失败则返回错误信息
     * 该方法用于处理POST请求，批量添加属性和属性组的关联关系。
     */
    @PostMapping("/addGroupRelation")
    public R addGroupRelation(@RequestBody List<PmsAttrAttrGroupRelationVO> voList){
        boolean add = pmsAttrAttrgroupRelationService.addGroupRelation(voList);
        return add ? R.ok() : R.error();
    }
}

